home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.image.RGBImageFilter;
-
- class fphoverx extends RGBImageFilter {
- private int m_w;
- private int m_h;
- private int m_xc;
- private int m_yc;
- private int m_dmax;
- private int m_r;
- private int m_g;
- private int m_b;
- private int m_effect;
- private int m_bevelSize;
-
- public fphoverx(int var1, int var2, Color var3, int var4) {
- super.canFilterIndexColorModel = false;
- this.m_w = var1;
- this.m_h = var2;
- this.m_xc = var1 / 2;
- this.m_yc = var2 / 2;
- this.m_dmax = this.m_xc * this.m_xc + this.m_yc * this.m_yc;
- this.m_r = var3.getRed();
- this.m_g = var3.getGreen();
- this.m_b = var3.getBlue();
- this.m_effect = var4;
- this.m_bevelSize = var1 < var2 ? var1 / 12 : var2 / 12;
- if (this.m_bevelSize < 2) {
- this.m_bevelSize = 2;
- }
-
- }
-
- public int filterRGB(int var1, int var2, int var3) {
- int var4 = (var1 - this.m_xc) * (var1 - this.m_xc) + (var2 - this.m_yc) * (var2 - this.m_yc);
- int var5 = (var3 & 16711680) >> 16;
- int var6 = (var3 & '\uff00') >> 8;
- int var7 = var3 & 255;
- switch (this.m_effect) {
- case 0:
- var5 = this.m_r;
- var6 = this.m_g;
- var7 = this.m_b;
- break;
- case 1:
- var5 = var5 + this.m_r >> 1;
- var6 = var6 + this.m_g >> 1;
- var7 = var7 + this.m_b >> 1;
- break;
- case 2:
- var5 = this.m_r + (var5 - this.m_r) * var4 / this.m_dmax;
- var6 = this.m_g + (var6 - this.m_g) * var4 / this.m_dmax;
- var7 = this.m_b + (var7 - this.m_b) * var4 / this.m_dmax;
- break;
- case 3:
- var5 += (this.m_r - var5) * var4 / this.m_dmax;
- var6 += (this.m_g - var6) * var4 / this.m_dmax;
- var7 += (this.m_b - var7) * var4 / this.m_dmax;
- break;
- case 4:
- var5 = var5 + 255 - (255 - var5) * var4 / this.m_dmax >> 1;
- var6 = var6 + 255 - (255 - var6) * var4 / this.m_dmax >> 1;
- var7 = var7 + 255 - (255 - var7) * var4 / this.m_dmax >> 1;
- break;
- case 5:
- case 6:
- if (var1 < this.m_bevelSize || this.m_w - 1 - var1 < this.m_bevelSize || var2 < this.m_bevelSize || this.m_h - 1 - var2 < this.m_bevelSize) {
- Color var8 = new Color(var5, var6, var7);
- boolean var9 = false;
- if (var1 < this.m_bevelSize && var1 + var2 <= this.m_h) {
- var9 = true;
- } else if (var2 < this.m_bevelSize && var1 + var2 <= this.m_w) {
- var9 = true;
- }
-
- if ((!var9 || this.m_effect != 5) && (var9 || this.m_effect != 6)) {
- var8 = var8.darker();
- } else {
- var8 = var8.brighter();
- }
-
- var5 = var8.getRed();
- var6 = var8.getGreen();
- var7 = var8.getBlue();
- }
- break;
- case 7:
- if (var5 == 0 && var6 == 0 && var7 == 0) {
- var5 = this.m_r;
- var6 = this.m_g;
- var7 = this.m_b;
- }
- }
-
- return var3 & -16777216 | var5 << 16 | var6 << 8 | var7;
- }
- }
-